/*
** Copyright (C) 2010 Calin Radoni
**
** This file is part of CHScanner.
**
** CHScanner is free software: you can redistribute it and/or modify
** it under the terms of the GNU General Public License as published by
** the Free Software Foundation, either version 3 of the License, or
** (at your option) any later version.
**
** CHScanner is distributed in the hope that it will be useful,
** but WITHOUT ANY WARRANTY; without even the implied warranty of
** MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
** GNU General Public License for more details.
**
** You should have received a copy of the GNU General Public License
** along with CHScanner. If not, see <http://www.gnu.org/licenses/>.
*/

#pragma once

class MWmiInfo
{
private:

protected:
	int propertyCount;

	virtual void DeleteChild(void);

public:
	MWmiInfo(void);
	~MWmiInfo(void);

	MWmiInfo *next;
	virtual MWmiInfo* CreateChild(void);
	void AddChild(MWmiInfo*);

	virtual void Initialize(void);

	virtual CString GetQueryString(void);

	int GetPropertyCount(void);
	virtual CString GetPropertyName(int);
	virtual bool SetPropertyValue(int, VARIANT*);

	virtual bool SetFromPointer(MWmiInfo*);

	int GetSizeM_OS(CString);
	int GetSizeM(CString);
	int GetSizeG(CString);

	virtual bool IsEmpty(void);
};

/*
VARIANT and VARIANTARG
		ms-help://MS.MSDNQTR.v80.en/MS.MSDN.v80/MS.WIN32COM.v10.en/automat/html/e305240e-9e11-4006-98cc-26f4932d2118.htm
	pentru a vedea care tipuri cui corespund
ms-help://MS.MSDNQTR.v80.en/MS.MSDN.v80/MS.WIN32COM.v10.en/wmisdk/wmi/numbers.htm
*/